package com.hb0730.boot.admin.modules.sci.model.entity;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;

/**
 * 科研获奖体育表
 * @TableName sci_scholarship_sport
 */
@TableName(value ="sci_scholarship_sport")
@Data
public class SciScholarshipSport implements Serializable {
    /**
     * id
     */
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    /**
     * 工号
     */
    private String username;

    /**
     * 填报者
     */
    private String nickname;

    /**
     * 院系部门
     */
    private String department;

    /**
     * 比赛名称
     */
    private String sportName;

    /**
     * 获奖人
     */
    private String firstAuthor;

    /**
     * 比赛时间
     */
    private LocalDateTime sportTime;

    /**
     * 证书编号
     */
    private String sportNumber;

    /**
     * 奖项范畴
     */
    private String sportCategory;

    /**
     * 奖项级别
     */
    private String sportGrade;

    /**
     * 组织部门
     */
    private String sportOrg;

    /**
     * 业绩点
     */
    private String point;

    /**
     * 科研奖金
     */
    private String bonus;

    /**
     * 项目路径
     */
    private String path;

    /**
     * 项目状态
     */
    private Integer satus;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime modified;

    /**
     * 备注
     */
    private String remark;

    @TableField(exist = false)
    private static final long serialVersionUID = 1L;

    @Override
    public boolean equals(Object that) {
        if (this == that) {
            return true;
        }
        if (that == null) {
            return false;
        }
        if (getClass() != that.getClass()) {
            return false;
        }
        SciScholarshipSport other = (SciScholarshipSport) that;
        return (this.getId() == null ? other.getId() == null : this.getId().equals(other.getId()))
            && (this.getUsername() == null ? other.getUsername() == null : this.getUsername().equals(other.getUsername()))
            && (this.getNickname() == null ? other.getNickname() == null : this.getNickname().equals(other.getNickname()))
            && (this.getDepartment() == null ? other.getDepartment() == null : this.getDepartment().equals(other.getDepartment()))
            && (this.getSportName() == null ? other.getSportName() == null : this.getSportName().equals(other.getSportName()))
            && (this.getFirstAuthor() == null ? other.getFirstAuthor() == null : this.getFirstAuthor().equals(other.getFirstAuthor()))
            && (this.getSportTime() == null ? other.getSportTime() == null : this.getSportTime().equals(other.getSportTime()))
            && (this.getSportNumber() == null ? other.getSportNumber() == null : this.getSportNumber().equals(other.getSportNumber()))
            && (this.getSportCategory() == null ? other.getSportCategory() == null : this.getSportCategory().equals(other.getSportCategory()))
            && (this.getSportGrade() == null ? other.getSportGrade() == null : this.getSportGrade().equals(other.getSportGrade()))
            && (this.getSportOrg() == null ? other.getSportOrg() == null : this.getSportOrg().equals(other.getSportOrg()))
            && (this.getPoint() == null ? other.getPoint() == null : this.getPoint().equals(other.getPoint()))
            && (this.getBonus() == null ? other.getBonus() == null : this.getBonus().equals(other.getBonus()))
            && (this.getPath() == null ? other.getPath() == null : this.getPath().equals(other.getPath()))
            && (this.getSatus() == null ? other.getSatus() == null : this.getSatus().equals(other.getSatus()))
            && (this.getModified() == null ? other.getModified() == null : this.getModified().equals(other.getModified()))
            && (this.getRemark() == null ? other.getRemark() == null : this.getRemark().equals(other.getRemark()));
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((getId() == null) ? 0 : getId().hashCode());
        result = prime * result + ((getUsername() == null) ? 0 : getUsername().hashCode());
        result = prime * result + ((getNickname() == null) ? 0 : getNickname().hashCode());
        result = prime * result + ((getDepartment() == null) ? 0 : getDepartment().hashCode());
        result = prime * result + ((getSportName() == null) ? 0 : getSportName().hashCode());
        result = prime * result + ((getFirstAuthor() == null) ? 0 : getFirstAuthor().hashCode());
        result = prime * result + ((getSportTime() == null) ? 0 : getSportTime().hashCode());
        result = prime * result + ((getSportNumber() == null) ? 0 : getSportNumber().hashCode());
        result = prime * result + ((getSportCategory() == null) ? 0 : getSportCategory().hashCode());
        result = prime * result + ((getSportGrade() == null) ? 0 : getSportGrade().hashCode());
        result = prime * result + ((getSportOrg() == null) ? 0 : getSportOrg().hashCode());
        result = prime * result + ((getPoint() == null) ? 0 : getPoint().hashCode());
        result = prime * result + ((getBonus() == null) ? 0 : getBonus().hashCode());
        result = prime * result + ((getPath() == null) ? 0 : getPath().hashCode());
        result = prime * result + ((getSatus() == null) ? 0 : getSatus().hashCode());
        result = prime * result + ((getModified() == null) ? 0 : getModified().hashCode());
        result = prime * result + ((getRemark() == null) ? 0 : getRemark().hashCode());
        return result;
    }

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", username=").append(username);
        sb.append(", nickname=").append(nickname);
        sb.append(", department=").append(department);
        sb.append(", sportName=").append(sportName);
        sb.append(", firstAuthor=").append(firstAuthor);
        sb.append(", sportTime=").append(sportTime);
        sb.append(", sportNumber=").append(sportNumber);
        sb.append(", sportCategory=").append(sportCategory);
        sb.append(", sportGrade=").append(sportGrade);
        sb.append(", sportOrg=").append(sportOrg);
        sb.append(", point=").append(point);
        sb.append(", bonus=").append(bonus);
        sb.append(", path=").append(path);
        sb.append(", satus=").append(satus);
        sb.append(", modified=").append(modified);
        sb.append(", remark=").append(remark);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}